#!/bin/bash

# 检查参数数量
if [ "$#" -ne 2 ]; then
  echo "Usage: $0 <file_path> <time>"
  echo "Example: $0 input.mp4 5:12"
  exit 1
fi

# 获取输入参数
file_path="$1"
time_str="$2"

# 检查文件是否存在
if [ ! -f "$file_path" ]; then
  echo "Error: File not found!"
  exit 1
fi

# 提取文件名和扩展名
file_name=$(basename "$file_path")
file_base="${file_name%.*}"
file_ext="${file_name##*.}"

# 转换为ffmpeg接受的格式（HH:MM:SS）
# 注意：这里假设输入的时间格式总是MM:SS，如果包含小时，需要调整
duration_str=$(echo "$time_str" | awk -F: '{printf "%d.%02d", $1*60 + $2, 0}')

# 获取视频总时长（秒）
total_duration=$(ffmpeg -i "$file_path" 2>&1 | grep "Duration" | awk '{print $2}' | tr -d ,)
total_duration_secs=$(echo "$total_duration" | awk -F: '{print $1*3600 + $2*60 + $3}')

# 计算分割点（秒）
split_point_secs=$(echo "$duration_str" | awk -F. '{print $1}')

# 检查分割点是否有效
if [ "$split_point_secs" -gt "$total_duration_secs" ]; then
  echo "Error: Split time is greater than video duration!"
  exit 1
fi

# 创建输出文件名
output1="${file_base}_1.${file_ext}"
output2="${file_base}_2.${file_ext}"

# 使用ffmpeg进行分割
ffmpeg -i "$file_path" -t "$split_point_secs" -c copy "$output1"
ffmpeg -i "$file_path" -ss "$split_point_secs" -c copy "$output2"

echo "Video has been split into $output1 and $output2"
